﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCS.Infrastructure.Dto.Common;

namespace WCS.Infrastructure.Dto.Response.Payment
{
    /// <summary>
    /// 查询与某用户相关的分账协议 请求对象
    /// </summary>
    public class DividedAgreementUserQueryDto : BaseRequestDto
    {
        /// <summary>
        /// 目标用户ID（为空则取当前登录用户）
        /// </summary>
        [StringLength(32)]
        public string? UserId { get; set; }

        /// <summary>
        /// 商户过滤（可选）
        /// </summary>
        [StringLength(32)]
        public string? MerchantId { get; set; }

        /// <summary>
        /// 包含作为参与者的协议（明细中有该用户）
        /// </summary>
        public bool IncludeParticipation { get; set; } = true;

        /// <summary>
        /// 包含作为创建者的协议（CreatorId 为该用户）
        /// </summary>
        public bool IncludeOwned { get; set; } = true;

        /// <summary>
        /// 启用状态过滤（-1 不过滤）
        /// </summary>
        public int EnableStatus { get; set; } = -1;

        /// <summary>
        /// 激活状态过滤（-1 不过滤）
        /// </summary>
        public int ActivationStatus { get; set; } = -1;

        /// <summary>
        /// 仅返回子协议（ParentAgreementId != null）
        /// </summary>
        public bool OnlySubAgreements { get; set; } = false;

        /// <summary>
        /// 默认false,为true时仅返回“当前用户在协议中的明细未绑定子协议”的参与项
        /// </summary>
        public bool OnlyMyDetailsWithoutSubAgreement { get; set; } = false;
    }
}
